/*
知识点：中间件，中间件类型和使用方法。
类型可分：
	1、文档中间件（int/validate/save/remove）
	2、查询中间件（count/find/findOne/findOneAndRemove/findOneAndUpdate/updata）
注意：中间件都有预处理中间件（pre）和后置处理中间件（post）
用途：
    如：记录用户最后一次修改信息的时间，就可以在更新(updata)这里写个中间件
*/
const mongoose = require('mongoose');
const uri = 'mongodb://localhost/htl';
const db = mongoose.connect(uri);

const TestSchema = new mongoose.Schema({
	name: {
		type: String,
	}
})

//这里定义了一个save之后，触发的中间件
TestSchema.post('save',function(next) {
	console.log('在保存之后会触发！');
	// next();  //但是这next会报错，说next不是个方法？？
})
//定义一个save操作之前触发的，中间件
TestSchema.pre('save',function(next) {
	console.log('保存之前会触发！');
	next();
})

const Test = mongoose.model('cc',TestSchema,'cc');
const test = new Test({
	name: 'htl',
});
test.save();

